我个人认为,这是一篇不错的文章,虽然我不是Program Mananger,但是我几乎在做着和这个职位很相似的工作。在这里,我把这篇文章推荐给所有的程序员,我相信,这篇文章会让你明白,只有技术是远远不够的,因为没有Program Manager这个角色,程序员们只不过一些手中拿着利器却不知所措的散兵游勇。我希望我的导读和原文能给所有的程序带来启示。
原文在这里:
“How to be a program manager”
http://www.joelonsoftware.com/items/2009/03/09.html
这篇文章的作者叫Joel Spolsky,在Microsoft做过Program Manager,这篇文章非常值得一读。下面是我给大家做的一个导读:
首先,他讲了两个人,一个是负责WYSIWYG 字处理的天才级的Program Manager——Charles Simonyi,第二个是上世纪80年代的负责Mac OS上的Excel项目的程序员Jabe Blumenthal,他发现了程序员和市场人员的代沟,Marketing的人很难通过把MBA-Speaking翻译成实际的Feature,并且,有太多的和编码不相关的工作,比如说,和用户交谈,运行usability测试,Reivew竞争者的产品,并且得冥思苦想怎么能让事情变得更简单,而我们的程序员通常来说即不具备这样的时间,也不具备这样的能力。于是,Jabe开始了他的Program Manager的生涯。
工作范围
作者在第二节里说了一个PM主要负责哪些事务:
接下来,作者讲述了他第一份Program Manager工作的经历,非常有意思,那是一个关于Excel 用户定制化的项目(耗子注:应该是在Excel中加入VBScript的项目吧,就是所谓的宏)。
第一个阶段
作者说,这个阶段的工作让他满是伤痕,他甚至害怕听到手机铃响。
第二个阶段
我们可以看到,FS在这样反复地和developer 团队推敲,甚至去帮助程序员解决技术难题,之后最终才能确定下来。一旦FS确定后,program manger需要做两件事:
也就是说,除了对FS解释外,需还需要把What needs to do 变成 How to do的设计文档。另外,Program Manager可能会有下面的工作:
我们可以看到,作者有太多,太多的会议和太多的与人沟通的事务,真是一个不简单的工作啊。
冲突管理
后面,作者着重讲了“Conflicts”冲突,这可能是所有的团队都会有的问题。而我们的Program Manager因为要和那么多的人沟通交流,所以,必然会需要有一种超人的能力去管理与人的发生的观点上的冲突。作者,在这里说了和程序员发生的很多争论,因为Program Manager是从用户的角度出发,而我们程序员总是从技术和实现的角度出发,不同的角度必然会引发冲突。作者举了一个例子,他说,用户们喜欢一个“心灵感应”的界面和一个30英寸的显示器,而我们的程序员喜欢的只是用Python搞的命令行接口。呵呵。另外,作者引用了一个Excel中的“pivot tables ”所引发的一个历时最长的争议作为案例。
最后,作者讨论了,争论是一个很好的事,就好像法院里的原告和被告都有自己的辩护律师一样,这有助于人们逼近事物的真相。对于软件开发也一样,良好的争论其实是对产品有好处的。我们应该在争论中关注事。
当在讨论到和程序相处的过程,作者说到了和程序员相外并不是一件很容易的事,因为你并不编码而也没有技术能力,通常会受到程序员的冷眼。所以在和程序沟通的过程中需要保证两件事:1)确信自己的正确的。2)让程序员尊敬自己。而对于第二点,如何让程序员尊敬自己,作者发表了自己的见解:1)demonstrate intelligence(展示自己的才华),2)open-mindedness(心胸宽阔),3)fairness(公平,正直)。千万不要搞办公室政治,或是开私密的经理会,等等。不然的话,你必然受到排挤。
推荐读物
最后作者给大家推荐了一些很不错的读物:
(完)